home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-3734 / data / sort.mcl < prev    next >
Text File  |  1987-04-21  |  2KB  |  148 lines

  1. % Polyfilm sorting demo
  2. % visualises the sort algorithm used by render
  3.  
  4. type one "\data\cube1.3d";
  5. type two "\data\cube2.3d";
  6. type three "\data\cube3.3d";
  7. type four "\data\cube4.3d";
  8.  
  9. prefs "\data\sph_pref.prf";
  10. palette 1;
  11.  
  12. object III type three at [-300,100,700] looking [180*16,0,0];
  13. object IV type four at [-100,100,700] looking [180*16,0,0];
  14. object II type two at [100,100,700] looking [180*16,0,0];
  15. object I type one at [300,100,700] looking [180*16,0,0];
  16.  
  17. camera camI at [0,0,0] looking [0,0,0] active;
  18.  
  19. lightsource lig at [0,0,500] lit;
  20.  
  21. simkey " " {
  22.   if [I.waiting]{
  23.     kick I;
  24.     kick II;
  25.     kick III;
  26.     kick IV;
  27.  
  28.     I.waiting=0;
  29.     I.goshuf=0;
  30.   }
  31. }
  32.  
  33. simkey "8" {
  34.   rotate camI by [0,16,0];
  35. }
  36.  
  37. simkey "2" {
  38.   rotate camI by [0,-16,0];
  39. }
  40.  
  41. simkey "4" {
  42.   rotate camI by [16,0,0];
  43. }
  44.  
  45. simkey "6" {
  46.   rotate camI by [-16,0,0];
  47. }
  48.  
  49. simkey "q" {
  50.   move camI by [0,16,0];
  51. }
  52.  
  53. simkey "a" {
  54.   move camI by [0,-16,0];
  55. }
  56.  
  57. simkey "o" {
  58.   move camI by [16,0,0];
  59. }
  60.  
  61. simkey "p" {
  62.   move camI by [-16,0,0];
  63. }
  64.  
  65.  
  66. I.waiting=0;
  67. I.goshuf=0;
  68.  
  69. I.main[]{
  70.   waiting=1;
  71.   goshuf=0;
  72.   
  73.   wait;
  74.   wait;
  75.   sortby[1];
  76. }
  77.  
  78. II.main[]{
  79.   wait;
  80.   
  81.   sortby[1];
  82.   sortup[];
  83. }
  84.  
  85. III.main[]{
  86.   wait;
  87.   
  88.   sortup[];
  89.   sortup[];
  90.   endsim;
  91. }
  92.  
  93. IV.main[]{
  94.   wait;
  95.  
  96.   sortup[];
  97.   sortup[];
  98. }
  99.  
  100. camI.main[]{
  101.   wait;
  102. }
  103.  
  104. lig.main[]{
  105.   wait;
  106. }
  107.  
  108. shuffle [targetx] {
  109.   if [ x<targetx ] {
  110.     move speed [10,0,0];
  111.   }
  112.   else {
  113.     if [ x>targetx ] {
  114.       move speed [-10,0,0];
  115.     }
  116.   }
  117.   wait [x=targetx];
  118.   stop move;
  119. }
  120.  
  121. raise [targety] {
  122.   if [ y<targety ] {
  123.     move speed [0,10,0];
  124.   }
  125.   else {
  126.     if [ y>targety ] {
  127.       move speed [0,-10,0];
  128.     }
  129.   }
  130.   wait [y=targety];
  131.   stop move;
  132. }
  133.  
  134. sortby[dest]{
  135.   raise [y-200];
  136.   I.goshuf=1;
  137.   shuffle [100+200*(dest-3)];
  138.   raise [y+200];
  139.   I.waiting=1;
  140.   wait;
  141. }
  142.  
  143. sortup[]{
  144.   wait [I.goshuf=1];
  145.   shuffle [x+200];
  146.   wait;
  147. }
  148.